<?php namespace Common\Model;
use Hdphp\Model\Model;

	class Article extends Model{
//		指定模型操作的表
		protected $table='article';
//		自动验证参数
		protected $validate=array(           
			array('title','required','分类名不能为空',3,3),

		);
//		自动完成 
		protected $auto=array(
//			字段验证，1，字段名，2作用的方法或函数名，3方法类型，验证条件，验证时机
			array('sendtime','time','function',3,1),
			array('updatetime','time','function',3,2),
			array('user_uid','uid','method',3,1),
			array('thumb','image','method',3,3)
		);
//		用户id
		public function uid(){
			return $_SESSION['id'];
		}
		
//		图片处理方法
		public function image(){
//			如果没有执行新的上传修改条件
			if(isset($_POST['thumb'])){
				return $_POST['thumb'];
			}
			$uploadDir='Upload/'.date('ymd');
//			创建文件夹
			is_dir($uploadDir)||mkdir($uploadDir,0777,true);
//			上传
//			调用框架的上传方法
			$file=Upload::type('jpeg,jpg,png,gif')->path($uploadDir)->size(2000000)->make();
//			缩图
			if($file){
//				拼接输出的路径
				$dst=$uploadDir.'/thumb_'.$file[0]['basename'];
//				缩略图方法
				$path=Image::thumb($file[0]['path'],$dst,200,200,6);
				return $path;
			}
//			如果没有上传条件，返回一个空字符串到字段
			return '';
		}
//		添加数据
		public function store(){
//			添加文章需要先验证
//			create会自动调用自动验证和自动完成 
			if(!$this->create()) return FALSE;
//			还要验证文章内容表
//			自动验证
			$arcData=new ArcData;
			if(!$arcData->create()){
				$this->error=$arcData->getError();
				return FALSE;
			}
			
//			有可能上传文件不存在或者 上传文件为空
//			error4是不为空
			if($_FILES['thumb']['error']!=4){
				if($error=Upload::getError()){
					$this->error=$error;
					return FALSE;
				}
			}
			
//			添加文章表
//			并且获取文章表填入数据的主键
			$aid=$this->add();
		
//			添加文章标签中间表
//			把tid中的所有键值内容写入到文章标签中间表中
//			实例化中间表
			$arcTag=new ArcTag;
//			循环post的tid字段,将字段循环重组后添加进中间表,
			foreach(Q('post.tid') as $tid){
				$data=array(
					'article_aid'=>$aid,
					'tag_tid'=>$tid
				);
//				添加文章标签中间表
				$arcTag->add($data);
			}
//			处理文章内容表
			$arcData->data['article_aid']=$aid;
//			添加文章内容表
			$arcData->add();
			return true;
		}

//编辑
		public function edit(){
			
			if(!$this->create()) return FALSE;
//			还要验证文章内容表
//			自动验证
			$arcData=new ArcData;
			if(!$arcData->create()){
				$this->error=$arcData->getError();
				return FALSE;
			}
//			判定上传文件中是否有上传图片
			if(isset($_FILES['thumb']) && $_FILES['thumb']['error']!=4){
				if($error=Upload::getError()){
					$this->error=$error;
					return FALSE;
				}
			}		
			$this->save();	
			
			$arcTag=new ArcTag;
//			先把原来的所有数据删除
			$aid=$_POST['aid'];
			$arcTag->where('article_aid',$aid)->delete();

//			然后将新提交的tagid写入数据库
			foreach(Q('post.tid') as $tid){
//				重组数据
				$data=array(
				'article_aid'=>$aid,
				'tag_tid'=>$tid
				);
//				重新添加
				$arcTag->add($data);
			}
			
//			文章内容表修改
//			添加文章内容表

			$arcData->where('article_aid',$aid)->save();
			return true;
			
		}

		
		

	}
	









